package com.pay.bean;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 通用支付结果对象。
 */
public interface IPayResult extends Serializable {

    /**
     * 获取原始支付通知记录ID。
     * @return
     */
    Long getOriginPayNotifyId();

    /**
     * 获取原始支付通知记录ID。
     * @return
     */
    void setOriginPayNotifyId(Long id);


    /**
     * 获得支付宝或微信支付等第三方的交易编号。
     * @return
     */
    String getTradeNo();

    /**
     * 获得商城的交易编号。
     * @return
     */
    String getOutTradeNo();

    /**
     * 获得支付模式。
     * @return
     */
    String getPayMode();

    /**
     * 得到交易状态码
     * @return
     */
    String getTradeStatus();

    /**
     * 得到收款方编号。
     * @return
     */
    String getSellerId();

    /**
     * 得到付款方编号。
     * @return
     */
    String getBuyerId();

    /**
     * 得到支付的金额。
     */
    BigDecimal getPaidAmount();

    /**
     * 得到支付时间。
     * @return
     */
    Date getPayTime();

    /**
     * 是否支付成功。
     * @return
     */
    boolean isPaid();

    /**
     * 是否是查询结果。
     * @return
     */
    boolean isQueryResult();


    TradeState getStandardTradeStatus();
}
